package cn.tedu.objectx;

import java.util.Objects;

public class ObjectDemo2 {
    public static void main(String[] args) {
//        Product p1 = new Product();
//        p1.name = "手机";
//        p1.price = 3000;
//        Product p1 = null;
        Product p2 = new Product();
        p2.name = "手机";
        p2.price = 3000;
//        System.out.println(p1.equals(p2));//true
//        System.out.println(Objects.equals(p1,p2));//true
//        System.out.println(p1==p2);//false
//        System.out.println(p1.equals(p2));//false
    }
}
class Product{
    String name;
    double price;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Product product = (Product) o;
        return Double.compare(product.price, price) == 0 &&
                Objects.equals(name, product.name);
    }

    //重写equals方法
//    public boolean equals(Object o){
//        //比较地址
//        if(this==o){
//            return true;
//        }
//        //参数是否为null
//        if(o==null){
//            return false;
//        }
//        //判断参数和当前对象是否相同类型
//        if(this.getClass()!=o.getClass()){
//            return false;
//        }
//        //参数类型强转
//        Product pro = (Product) o;
////        if(this.price!=pro.price){
////            return false;
////        }
////        if(!name.equals(pro.name)){
////            return false;
////        }
////        return true;
//        if(this.price==pro.price&&name.equals(pro.name)){
//            return true;
//        }
//        return false;
//    }

}